package com.billdowney.vo.system.quartz;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

import org.quartz.Trigger.TriggerState;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * JobDetail作业的触发器信息
 * 
 * @author 超级小富翁
 * @date 2019年9月5日 下午8:57:15
 */
@ApiModel(description = "JobDetail的触发器信息")
public class JobTriggerInfoVO implements Serializable {

	private static final long serialVersionUID = 1L;
	@ApiModelProperty(value = "作业名称")
	private String jobName;
	@ApiModelProperty(value = "作业组名称")
	private String jobGroup;
	@ApiModelProperty(value = "触发器名称")
	private String triggerName;
	@ApiModelProperty(value = "触发器组名称")
	private String triggerGroup;
	@ApiModelProperty(value = "触发器状态")
	private TriggerState state;
	@ApiModelProperty(value = "关联日历的名称")
	private String calendarName;
	@ApiModelProperty(value = "触发器描述")
	private String desc;
	@ApiModelProperty(value = "Job参数", notes = "定时任务中作业参数")
	private Map<String, Object> jobDataMap;
	@ApiModelProperty(value = "Trigger参数", notes = "定时任务中触发器参数")
	private Map<String, Object> triggerDataMap;
	@ApiModelProperty(value = "触发器优先级", notes = "触发器的优先级充当平分符，这样，如果两个触发器具有相同的计划触发时间，那么优先级较高的触发器将首先访问workerthread。如果没有显式设置，默认值为5。")
	private Integer priority;
	@ApiModelProperty(value = "触发器开始时间")
	private Date startTime;
	@ApiModelProperty(value = "触发器停止时间", notes = "获取触发器应该停止重复的时间——不管任何剩余的重复(基于触发器的特殊repeat设置)")
	private Date endTime;
	@ApiModelProperty(value = "上次触发触发器时间", notes = "如果触发器尚未触发，则返回null")
	private Date previousFireTime;
	/**
	 * 返回下一次计划触发器触发的时间。如果触发器不再触发，则返回null。
	 * 注意，返回的时间可能是在过去，如果计算触发器到下一次触发的时间已经到达，但是调度程序还不能触发触发器(这可能是由于缺乏资源，例如。线程)。
	 * 在触发器被添加到调度程序之后，才能保证返回的值是有效的。
	 */
	@ApiModelProperty(value = "下次触发触发器时间", notes = "如果触发器不再触发，则返回null")
	private Date nextFireTime;
	@ApiModelProperty(value = "最后一次触发时间", notes = "如果触发器无限期重复，则返回null")
	private Date finalFireTime;

	public String getJobName() {
		return jobName;
	}

	public void setJobName(String jobName) {
		this.jobName = jobName;
	}

	public String getJobGroup() {
		return jobGroup;
	}

	public void setJobGroup(String jobGroup) {
		this.jobGroup = jobGroup;
	}

	public String getTriggerName() {
		return triggerName;
	}

	public void setTriggerName(String triggerName) {
		this.triggerName = triggerName;
	}

	public String getTriggerGroup() {
		return triggerGroup;
	}

	public void setTriggerGroup(String triggerGroup) {
		this.triggerGroup = triggerGroup;
	}

	public TriggerState getState() {
		return state;
	}

	public void setState(TriggerState state) {
		this.state = state;
	}

	public String getCalendarName() {
		return calendarName;
	}

	public void setCalendarName(String calendarName) {
		this.calendarName = calendarName;
	}

	public String getDesc() {
		return desc;
	}

	public void setDesc(String desc) {
		this.desc = desc;
	}

	public Map<String, Object> getJobDataMap() {
		return jobDataMap;
	}

	public void setJobDataMap(Map<String, Object> jobDataMap) {
		this.jobDataMap = jobDataMap;
	}

	public Map<String, Object> getTriggerDataMap() {
		return triggerDataMap;
	}

	public void setTriggerDataMap(Map<String, Object> triggerDataMap) {
		this.triggerDataMap = triggerDataMap;
	}

	public Integer getPriority() {
		return priority;
	}

	public void setPriority(Integer priority) {
		this.priority = priority;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public Date getPreviousFireTime() {
		return previousFireTime;
	}

	public void setPreviousFireTime(Date previousFireTime) {
		this.previousFireTime = previousFireTime;
	}

	public Date getNextFireTime() {
		return nextFireTime;
	}

	public void setNextFireTime(Date nextFireTime) {
		this.nextFireTime = nextFireTime;
	}

	public Date getFinalFireTime() {
		return finalFireTime;
	}

	public void setFinalFireTime(Date finalFireTime) {
		this.finalFireTime = finalFireTime;
	}

}
